package cn.lzy.study.ratelimiter.controller;

import cn.lzy.study.ratelimiter.annotation.RateLimiter;
import cn.lzy.study.ratelimiter.enums.LimiterType;
import cn.lzy.study.ratelimiter.utils.IpUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    /**
     * 接口限流，这个接口在10秒内可以访问3次
     * @return
     */
    @GetMapping("/hello")
    @RateLimiter(time = 10, count = 3)
    public String hello() {
        return "hello word";
    }

    /**
     * 接口限流，这个接口在同一个ip地址10秒内可以访问3次
     * @return
     */
    @GetMapping("/helloIp")
    @RateLimiter(time = 10, count = 3, limiterType = LimiterType.IP)
    public String helloIp() {
        return "hello word ip";
    }
}
